/* exec1.c - 演示程序如何轻松地运行另一个程序  
 */  

#include <stdio.h>    // 用于 printf  
#include <stdlib.h>   // 用于 exit 和 EXIT_FAILURE  
#include <unistd.h>   // 用于 execvp  

int main(void)  
{  
    // 定义参数列表，最后一个元素必须为 NULL  
    char *arglist[] = { "ls", "-l", NULL };  

    printf("* * * 即将执行 ls -l\n");  
    
    // 调用 execvp 执行 ls 命令  
    if (execvp("ls", arglist) == -1) {  
        perror("execvp");  
        exit(EXIT_FAILURE);  
    }  

    // 如果 execvp 成功，这行代码不会被执行  
    printf("* * * ls 执行完毕，退出程序\n");  
    return 0;  
}